From e15103060dd7b08f9105b8734baa30eb8a1e40f4 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Tue, 24 May 2011 18:26:47 +0100 Subject: [PATCH] libxl: fixup error handling in libxl__build_hvm. We first pointless initialise rc and immediately overwrite the value, then fail to return it on error anyway... Signed-off-by: Ian Campbell Acked-by: Ian Jackson Committed-by: Ian Jackson --- tools/libxl/libxl_dom.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c index a51e06d5ae..d515145245 100644 --- a/tools/libxl/libxl_dom.c +++ b/tools/libxl/libxl_dom.c @@ -284,15 +284,17 @@ int libxl__build_hvm(libxl__gc *gc, uint32_t domid, libxl__domain_build_state *state) { libxl_ctx *ctx = libxl__gc_owner(gc); - int ret, rc = ERROR_INVAL; + int ret, rc = ERROR_FAIL; + const char *firmware = libxl__domain_firmware(gc, info, dm_info); - rc = ERROR_FAIL; + if (!firmware) + goto out; ret = xc_hvm_build_target_mem( ctx->xch, domid, (info->max_memkb - info->video_memkb) / 1024, (info->target_memkb - info->video_memkb) / 1024, - libxl__domain_firmware(gc, info, dm_info)); + firmware); if (ret) { LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, ret, "hvm building failed"); goto out; @@ -305,7 +307,7 @@ int libxl__build_hvm(libxl__gc *gc, uint32_t domid, } rc = 0; out: - return 0; + return rc; } int libxl__domain_restore_common(libxl__gc *gc, uint32_t domid, -- 2.30.2